// function repeact(dataSource) {
//   /**
//    * 给需要提出的元素怒假设一个参数 isShow
//    * 思路：给相同地址的点位标记上 mark: isShow
//    *
//    */
//   let aMap = {};
//   let arr = [];
//   dataSource.forEach((item) => {
//     aMap[item.addr] = { isSet: false };
//   });
//   // aMap: { xxx: { isSet: false }, yyy: { isSet: false } }
//   // 1 2 3
//   console.log(aMap, 'aMap');
//   let keys = Object.keys(aMap)
//   console.log(keys, 'keys');
//   dataSource.forEach((it) => {
//     console.log(it, 'ite');
//     // Object.keys(aMap).forEach((key) => {
//     for (let i = 0; i < keys.length; i++) {
//       let key = keys[i]
//       console.log(key, 'key');
//       if (key == it.addr && !aMap[key].isSet) {
//         // 如果地址相等并且没有设置过 那就set进去
//         arr.push(it);
//         aMap[key].isSet = true;
//         break;
//       } else {
//         arr.push({
//           ...it,
//           isShow: false,
//         });
//         break;
//       }
//     }
      
//     // });
//   });

//   return {
//     arr,
//   };
// }

let data = [
  { addr: 1, id: 1 },
  { addr: 1, id: 2 },
  { addr: 1, id: 3 },
  { addr: 1, id: 4 },
  { addr: 2, id: 5 },
  { addr: 3, id: 6 },
];
console.log(test2(data));

function test2(dataSource) {
  let addrArr = []
  dataSource.forEach(item => {
    item.isShow = false
    if (!addrArr.includes(item.addr)) {
      item.isShow = true
      addrArr.push(item.addr)
    }
  });
  return dataSource
}
